#使用format_map的方式来映射
template = '''<html> 
<head><title>{title}</title></head> 
<body> 
<h1>{title}</h1> 
<p>{text}</p> 
</body>'''
data = {'title': 'My Home Page', 'text': 'Welcome to my home page!'}
print(template.format_map(data))
#clear：方法clear删除所有的字典项，这种操作是就地执行（什么都不返回（或者说返回None））
x = {}
y = x
x['key'] = 'value'
print(y)
x.clear()
print(y)#y也被清空
#如果不用clear
x = {}
y = x
x['key'] = 'value'
x = {}
print(y)#y不会被清空
#copy浅复制（值本身是原件，而非复制后建立副本）
a = {'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
b = a.copy()
b['username'] = 'mlh'
b['machines'].remove('bar')
print(a)#{'username': 'mlh', 'machines': ['foo', 'baz']}————当“替换”副本中的值时，原件不受影响。然而，如果“修改”副本中的值，原件也将发生变化
print(b)#{'username': 'admin', 'machines': ['foo', 'baz']}
#deepcopy深复制
from copy import deepcopy
d = {}
d['names'] = ['Alfred', 'Bertrand']
c = d.copy()
dc = deepcopy(d)
d['names'].append('Clive')
print(c)#{'names': ['Alfred', 'Bertrand', 'Clive']}
print(dc)#{'names': ['Alfred', 'Bertrand']}(复制并建立了副本)
#fromkeys：创建一个新字典，其中包含指定的键，且每个键对应的值都是None
dict.fromkeys(['name', 'age'])#{'age': None, 'name': None}
dict.fromkeys(['name', 'age'],'(unknown)')#{'age': '(unknown)', 'name': '(unknown)'}如果你不想使用默认值None，可提供特定的值。
#get:如果你试图访问字典中没有的项，将引发错误
e ={}
e['name'] = 'Eric'
print(e.get('same'))#这里输出是None不会报错
#print(e['same'])#由于没有使用get方法会报错——KeyError: 'same'
#item（字典的视图）：
# 返回一个包含所有字典项的列表，其中每个元素都为(key, value)的形式。字典项在列表中的排列顺序不确定。
f = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}
print(dict.items(f))
it =dict.items(f)
print(len(it))#输出是3——('title', 'Python Web Site'), ('url', 'http://www.python.org'), ('spam', 0）
f['spam'] = 1#对内容赋值时会直接变动其本身的值，不会产生副本
print(f)
#key:返回一个字典视图，其中包含指定字典中的键
#pop:p可用于获取与指定键相关联的值，并将该键值对从字典中删除(注意删除的是“键值对”)
g = {'x': 1, 'y': 2}
print(g.pop('x'))#输出是1
print(g)#输出是{'y':2}
#popitem随机选择一个键值对，并删除
#setdefault:1、指定的键不存在时，setdefault返回指定的值并相应地更新字典 2、如果指定的键存在，就返回其值，并保持字典不变
#update:使用一个字典中的项来更新另一个字典
h = {
    'title': 'Python Web Site',
    'url': 'http://www.python.org',
    'changed': 'Mar 14 22:09:15 MET 2016'
}
i = {'title': 'Python Language Website'}
h.update(i)
print(h)
#方法values返回一个由字典中的值组成的字典视图